class SecurityException implements Exception {


  final String message;
  final dynamic details;
  final String? strackTrace; 
  SecurityException(this.message, this.details, this.strackTrace);

  @override
  String toString() {
    return 'SecurityException{message: $message, details: $details, strackTrace: $strackTrace}';
  }
}

class BluetoothException implements Exception {
  final String message;
  final dynamic details;
  final String? strackTrace; 
  BluetoothException(this.message, this.details, this.strackTrace);

  @override
  String toString() {
    return 'BluetoothUnavailableException{message: $message, details: $details, strackTrace: $strackTrace}';
  }
}

class BluetoothUnavailableException extends BluetoothException{
  BluetoothUnavailableException(super.message, super.details, super.strackTrace);
  
  @override
  String toString() {
    return 'BluetoothUnavailableException{message: $message, details: $details, strackTrace: $strackTrace}';
  }
  
}

class ScanningException extends BluetoothException{
  ScanningException(super.message, super.details, super.strackTrace);
  
  @override
  String toString() {
    return 'ScanningException{message: $message, details: $details, strackTrace: $strackTrace}';
  }
  

}

class ManagerClosedException implements Exception {
  final String message;
  final dynamic details;
  final String? strackTrace; 
  ManagerClosedException(this.message, this.details, this.strackTrace);

  @override
  String toString() {
    return 'ManagerClosedException{message: $message, details: $details, strackTrace: $strackTrace}';
  }
}